August 2023 - Present
Background & Overview
As I greatly enjoyed robot summer, I wanted to do another similar project with a bit more autonomy. This project started with a group of friends all wanting to do some extracurricular projects involving mechanical and circuit design, plus a hefty amount of computer vision and machine learning. The goal of this project is to make an autonomous robot that takes processed camera data on a pool table with pool balls on it, and automatically plays pool.
Design(updated as project goes)
- The drive base uses 3 omni-wheels at 60 degree angles to achieve both rotational and translational freedom
- Later prototype uses stepper motors instead of dc motors for positional accuracy as speed is not a concern
- The robot uses a high voltage solenoid to hit the balls
- A camera is setup on top of the pool table to gather real time data of the colors and positions of the balls and the robot
- The camera data is transmitted to a laptop which uses YOLOv8(computer vision model) to both analyze the data and calculate the path for the robot
- The instructions is sent from the laptop to the esp32 microcontroller on the robot via Wifi
Results(updated as project goes)
- Able to precisely travel to any position and any rotation with either manual GUI commands or autonomous computer vision feedback
- Able to calculate trajectory of the ball strike and the force of the strike
- Accurately scores with complex ball movement(bouncing off edges)!